[XEN] Allow shutdown code to be set at most once per domain.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Fri, 1 Dec 2006 17:29:04 +0000 (17:29 +0000)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Fri, 1 Dec 2006 17:29:04 +0000 (17:29 +0000)
SIgned-off-by: Keir Fraser <keir@xensource.com>
xen/common/domain.c

index 238ee037a723dc2df157bf420c7b594b156bd883..51a2e78d3140deef72b969a391dbcbe752396d91 100644 (file)
@@ -283,8 +283,8 @@ void domain_shutdown(struct domain *d, u8 reason)
     if ( d->domain_id == 0 )
         dom0_shutdown(reason);
 
-    d->shutdown_code = reason;
-    set_bit(_DOMF_shutdown, &d->domain_flags);
+    if ( !test_and_set_bit(_DOMF_shutdown, &d->domain_flags) )
+        d->shutdown_code = reason;
 
     for_each_vcpu ( d, v )
         vcpu_sleep_nosync(v);